package com.aplikata.evok.service;

import java.util.Date;
import java.util.List;

import org.primefaces.model.ScheduleEvent;

import com.aplikata.bo.User;
import com.aplikata.bo.UserEvent;
import com.aplikata.evok.bo.DoctorSchedule;
import com.aplikata.service.PublicService;

/**
 * @ClassName: EvokDoctorService
 * @Description: TODO
 * @author Huyun
 * @date Sep 6, 2012 12:43:43 PM
 */
public interface EvokDoctorService extends PublicService {

	List<Object[]> getPatientTherapyListForCanlendar(Long patientId);

	List<DoctorSchedule> getDoctorTodayResversation(Long doctorId);

	List<DoctorSchedule> getDoctorResversationInCanlendar(Long doctorId, Date dateFrom, Date dateTo);

	List<ScheduleEvent> findDoctorAllCalendar(Long doctorId, Date dateFrom, Date dateTo);

	Object[] getTherapyObjForCalendar(Long patientTherapyId);
	
	List<Object[]> getUnreadComments(Long doctorId);

	void updateFinishTodayReservation(DoctorSchedule[] schedules) throws Exception;

	List<Object[]> getDoctorResForMobile(Long doctorId, Date qyDate);

	User[] findDomainDoctors(Long domainId, Long deptId);

	List<DoctorSchedule> getDoctorResversationInCanlendar(Long[] doctorIds, Date dateFrom, Date dateTo);

	List<ScheduleEvent> findDoctorAllCalendar(Long[] doctorIds, Date dateFrom, Date dateTo);

	public Object[] findDoctorEvents(Long[] doctorIds, Date dateFrom, Date dateTo, int startRow, int rows);

	Object updateDoctorSchedule(User user, User doctor, Integer calendarType, UserEvent userEvent, DoctorSchedule schedule,
			Long domainPatientId, Object[] therapyObj) throws Exception;

	void deleteDoctorSchedule(DoctorSchedule schedule, User user) throws Exception;


}
